Code review comment: does it mean that in shared nothing mode, create db/table statement is not allowed to specify 'storage volume' property?  I would say, we should respect what the db storageVolumeId is no matter it is a shared data or shared nothing mode. If the db is not allowed to have a storage volume property, just block it when creating/altering sql.

Code under review:
private void handleShowCreateDb() throws AnalysisException {
        ShowCreateDbStmt showStmt = (ShowCreateDbStmt) stmt;
        String catalogName = showStmt.getCatalogName();
        String dbName = showStmt.getDb();
        List<List<String>> rows = Lists.newArrayList();

        Database db;
        if (Strings.isNullOrEmpty(catalogName) || CatalogMgr.isInternalCatalog(catalogName)) {
            db = connectContext.getGlobalStateMgr().getDb(dbName);
        } else {
            db = GlobalStateMgr.getCurrentState().getMetadataMgr().getDb(catalogName, dbName);
        }
        MetaUtils.checkDbNullAndReport(db, showStmt.getDb());

        StringBuilder createSqlBuilder = new StringBuilder();
        createSqlBuilder.append("CREATE DATABASE `").append(showStmt.getDb()).append("`");
        if (!Strings.isNullOrEmpty(db.getLocation())) {
            createSqlBuilder.append("\nPROPERTIES (\"location\" = \"").append(db.getLocation()).append("\")");
        }
        if (RunMode.getCurrentRunMode() == RunMode.SHARED_DATA && !Strings.isNullOrEmpty(db.getStorageVolumeId())) {
            StorageVolume sv = GlobalStateMgr.getCurrentState().getStorageVolumeMgr().getStorageVolume(db.getStorageVolumeId());
            createSqlBuilder.append("\nPROPERTIES (\"storage_volume\" = \"").append(sv.getName()).append("\")");
        }
        rows.add(Lists.newArrayList(showStmt.getDb(), createSqlBuilder.toString()));
        resultSet = new ShowResultSet(showStmt.getMetaData(), rows);
    }

Line commented on: if (RunMode.getCurrentRunMode() == RunMode.SHARED_DATA && !Strings.isNullOrEmpty(db.getStorageVolumeId())) {

Revised code:
private void handleShowCreateDb() throws AnalysisException {
        ShowCreateDbStmt showStmt = (ShowCreateDbStmt) stmt;
        String catalogName = showStmt.getCatalogName();
        String dbName = showStmt.getDb();
        List<List<String>> rows = Lists.newArrayList();

        Database db;
        if (Strings.isNullOrEmpty(catalogName) || CatalogMgr.isInternalCatalog(catalogName)) {
            db = connectContext.getGlobalStateMgr().getDb(dbName);
        } else {
            db = GlobalStateMgr.getCurrentState().getMetadataMgr().getDb(catalogName, dbName);
        }
        MetaUtils.checkDbNullAndReport(db, showStmt.getDb());

        StringBuilder createSqlBuilder = new StringBuilder();
        createSqlBuilder.append("CREATE DATABASE `").append(showStmt.getDb()).append("`");
        if (!Strings.isNullOrEmpty(db.getLocation())) {
            createSqlBuilder.append("\nPROPERTIES (\"location\" = \"").append(db.getLocation()).append("\")");
        }
        if (!Strings.isNullOrEmpty(db.getStorageVolumeId())) {
            StorageVolume sv = GlobalStateMgr.getCurrentState().getStorageVolumeMgr().getStorageVolume(db.getStorageVolumeId());
            createSqlBuilder.append("\nPROPERTIES (\"storage_volume\" = \"").append(sv.getName()).append("\")");
        }
        rows.add(Lists.newArrayList(showStmt.getDb(), createSqlBuilder.toString()));
        resultSet = new ShowResultSet(showStmt.getMetaData(), rows);
    }