**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+


: DatabaseWithOwnTablesBase(name_, "DatabaseMemory(" + name_ + ")", context_)
    , data_path("data/" + escapeForFileName(database_name) + "/")
{}
void DatabaseMemory::createTable(
    ContextPtr ,
    const String & table_name,
    const StoragePtr & table,
    const ASTPtr & query)
{
    std::unique_lock lock{mutex};
    attachTableUnlocked(table_name, table, lock);
    create_queries.emplace(table_name, query);
}
void DatabaseMemory::dropTable(