code: public void createOrMigrateSchema(String tableName, String entitySchemaString,
        boolean createTableAndFamilies) throws InterruptedException {
      boolean migrationRequired = prepareManagedSchema(tableName,
          entitySchemaString);
      if (migrationRequired && createTableAndFamilies) {
        try {
          HTableDescriptor descriptor = prepareTableDescriptor(tableName,
              entitySchemaString);
          if (hbaseAdmin.isTableAvailable(tableName)) {
            modifyTable(tableName, descriptor);
          } else {
            createTable(descriptor);
          }
        } catch (IOException e) {
          throw new DatasetException(e);
        }
      }
    }
docs: Creates a new managed schema, or migrates an existing one if one exists for
  the table name, entity name pair.
  
  @param tableName
  The name of the table we'll be creating or migrating a schema for.
  @param entitySchemaString
  The entity schema
  @param createTableAndFamilies
  If true, will create the table for this schema if it doesn't
  exist, and will create families if they don't exist.