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


{
    if (auto table = tryGetTable(table_name, getContext()))
        return table->getStorageID().uuid;
    return UUIDHelpers::Nil;
}
void DatabaseMemory::drop(ContextPtr local_context)
{
    
    std::filesystem::remove_all(local_context->getPath() + data_path);
}
void DatabaseMemory::alterTable(ContextPtr local_context, const StorageID & table_id, const StorageInMemoryMetadata & metadata)
{
    std::lock_guard lock{mutex};
    auto it = create_queries.find(table_id.table_name);
    if (it == create_queries.end() || !it->second)
        throw Exception(ErrorCodes::UNKNOWN_TABLE, "Cannot alter: There is no metadata of table {}", table_id.getNameForLogs());
    applyMetadataChangesToCreateQuery(it->second, metadata);
    TableNamesSet new_dependencies = getDependenciesSetFromCreateQuery(local_context->getGlobalContext(), table_id.getQualifiedName(), it->second);
    DatabaseCatalog::instance().updateLoadingDependencies(table_id, std::move(new_dependencies));
}
}