

such as
```
create view view1 as 
with t as (select number n from numbers(3))
select n from t
```
metadata_path = metadata_path / "store" / DatabaseCatalog::getPathForUUID(create.uuid);
    }
    else
    {
        bool is_on_cluster = getContext()->getClientInfo().query_kind == ClientInfo::QueryKind::SECONDARY_QUERY;
        if (create.uuid != UUIDHelpers::Nil && !is_on_cluster)
            throw Exception("Ordinary database engine does not support UUID", ErrorCodes::INCORRECT_QUERY);
        
        create.uuid = UUIDHelpers::Nil;
        metadata_path = metadata_path / "metadata" / database_name_escaped;
    }
    if (create.storage->engine->name == "MaterializeMySQL" && !getContext()->getSettingsRef().allow_experimental_database_materialize_mysql
        && !internal)
    {
        throw Exception("MaterializeMySQL is an experimental database engine. "
                        "Enable allow_experimental_database_materialize_mysql to use it.", ErrorCodes::UNKNOWN_DATABASE_ENGINE);
    }
    if (create.storage->engine->name == "Replicated" && !getContext()->getSettingsRef().allow_experimental_database_replicated && !internal)
    {
        throw Exception("Replicated is an experimental database engine. "
                        "Enable allow_experimental_database_replicated to use it.", ErrorCodes::UNKNOWN_DATABASE_ENGINE);
    }
    DatabasePtr database = DatabaseFactory::get(create, metadata_path / "", getContext());
    if (create.uuid != UUIDHelpers::Nil)
        create.database = TABLE_WITH_UUID_NAME_PLACEHOLDER;
    bool need_write_metadata = !create.attach || !fs::exists(metadata_file_path);
    if (need_write_metadata)
    {
        create.attach = true;
        create.if_not_exists = false;