**Describe what's wrong**
inconsistent behavior 

```sql
SHOW CREATE DATABASE information_schema
```
returns the following SQL statement

```sql
CREATE DATABASE information_schema
ENGINE = Memory()
```

but when you try to run these queries
```sql
 DROP DATABASE information_schema;
 CREATE DATABASE information_schema
ENGINE = Memory()
```

It returns

> Code: 36. DB::Exception: Received from localhost:9000. DB::Exception: Database engine `Memory` cannot have arguments. (BAD_ARGUMENTS)


**Does it reproduce on recent release?**
reproduced any version from 21.11+


ContextPtr ,
    const String & table_name,
    bool )
{
    std::unique_lock lock{mutex};
    auto table = detachTableUnlocked(table_name, lock);
    try
    {
        
        
        
        
        SCOPE_EXIT(lock.lock());
        lock.unlock();
        table->drop();
        if (table->storesDataOnDisk())
        {
            assert(database_name != DatabaseCatalog::TEMPORARY_DATABASE);
            fs::path table_data_dir{getTableDataPath(table_name)};
            if (fs::exists(table_data_dir))
                fs::remove_all(table_data_dir);
        }
    }
    catch (...)
    {
        assert(database_name != DatabaseCatalog::TEMPORARY_DATABASE);
        attachTableUnlocked(table_name, table, lock);
        throw;
    }