/**
  * @param bool $clean
  * @return DBTestCreator
  * @throws DatabaseException
  */
 public function dropDB($clean = false)
 {
     foreach ($this->pool->getPool() as $name => $db) {
         /* @var $db DB */
         foreach ($this->schema->getTableNames() as $name) {
             try {
                 $db->queryRaw(OSQL::dropTable($name, true)->toDialectString($db->getDialect()));
             } catch (DatabaseException $e) {
                 if (!$clean) {
                     throw $e;
                 }
             }
             if ($db->hasSequences()) {
                 foreach ($this->schema->getTableByName($name)->getColumns() as $columnName => $column) {
                     try {
                         if ($column->isAutoincrement()) {
                             $db->queryRaw("DROP SEQUENCE {$name}_id;");
                         }
                     } catch (DatabaseException $e) {
                         if (!$clean) {
                             throw $e;
                         }
                     }
                 }
             }
         }
     }
     return $this;
 }