code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<Empty, UpdateDatabaseDdlMetadata> updateDatabaseDdlAsync(
        DatabaseName database, List<String> statements) {
  
      UpdateDatabaseDdlRequest request =
          UpdateDatabaseDdlRequest.newBuilder()
              .setDatabase(database == null ? null : database.toString())
              .addAllStatements(statements)
              .build();
      return updateDatabaseDdlAsync(request);
    }
docs: Updates the schema of a Cloud Spanner database by creating/altering/dropping tables, columns,
  indexes, etc. The returned [long-running operation][google.longrunning.Operation] will have a
  name of the format `&lt;database_name&gt;/operations/&lt;operation_id&gt;` and can be used to
  track execution of the schema change(s). The [metadata][google.longrunning.Operation.metadata]
  field type is
  [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata]. The
  operation has no response.
  
  <p>Sample code:
  
  <pre><code>
  try (DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.create()) {
  DatabaseName database = DatabaseName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]");
  List&lt;String&gt; statements = new ArrayList&lt;&gt;();
  databaseAdminClient.updateDatabaseDdlAsync(database, statements).get();
  }
  </code></pre>
  
  @param database Required. The database to update.
  @param statements DDL statements to be applied to the database.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails