protected Collection<String> getScripts(
     Map<Schema, Collection<String>> schemaScripts,
     ScriptGeneratorManager scriptGeneratorManager,
     boolean dropSchema,
     boolean useSchema) {
   Collection<String> scripts = newArrayList();
   if (schemaScripts.size() == 1) {
     Map.Entry<Schema, Collection<String>> schemaScript =
         schemaScripts.entrySet().iterator().next();
     Schema schema = schemaScript.getKey();
     if (dropSchema) {
       scripts.add(getDropSchema(schema, scriptGeneratorManager));
     }
     if (useSchema) {
       scripts.add(getUseSchema(schema, scriptGeneratorManager));
     }
     scripts.addAll(schemaScript.getValue());
   } else {
     for (Map.Entry<Schema, Collection<String>> schemaScript : schemaScripts.entrySet()) {
       Schema schema = schemaScript.getKey();
       Dialect dialect = scriptGeneratorManager.getTargetDialect();
       if (dropSchema) {
         scripts.add(getDropSchema(schema, scriptGeneratorManager));
       }
       if (useSchema) {
         scripts.add(
             schema.getIdentifier() != null
                 ? dialect.getUseSchema(scriptGeneratorManager.getName(schema))
                 : dialect.getUseSchema(scriptGeneratorManager.getName(schema.getCatalog())));
       }
       scripts.addAll(schemaScript.getValue());
     }
   }
   return scripts;
 }
 public static String getUseSchema(Schema schema, ScriptGeneratorManager scriptGeneratorManager) {
   String useSchema = null;
   Dialect dialect = scriptGeneratorManager.getTargetDialect();
   if (!isEmpty(scriptGeneratorManager.getTargetSchema())) {
     useSchema = dialect.getUseSchema(scriptGeneratorManager.getTargetSchema(), true);
   } else if (!isEmpty(scriptGeneratorManager.getTargetCatalog())) {
     useSchema = dialect.getUseSchema(scriptGeneratorManager.getTargetCatalog(), true);
   }
   if (useSchema == null) {
     useSchema =
         schema.getIdentifier() != null
             ? dialect.getUseSchema(scriptGeneratorManager.getName(schema))
             : dialect.getUseSchema(scriptGeneratorManager.getName(schema.getCatalog()));
   }
   return useSchema;
 }