@Override
  public ValidationErrors validate(final Database database) {
    final ValidationErrors validationErrors;

    if ((database instanceof DerbyDatabase || database instanceof H2Database)
        && getTableName() == null) {
      validationErrors = new ValidationErrors();
      validationErrors.addError("tableName is required for " + database.getDatabaseProductName());
    } else {
      final IndexExistsPrecondition precondition = new IndexExistsPrecondition();
      precondition.setCatalogName(getCatalogName());
      precondition.setSchemaName(getSchemaName());
      precondition.setTableName(getTableName());
      precondition.setIndexName(getIndexName());
      precondition.setColumnNames(getColumnNames());
      validationErrors = precondition.validate(database);
    }
    return validationErrors;
  }