code: @Override
      protected void update(List<TableInfo> tableInfos)
      {
          for (TableInfo tableInfo : tableInfos)
          {
              try
              {
                  if (!client.tableExists(tableInfo.getTableName()))
                  {
                      createKuduTable(tableInfo);
                  }
                  else
                  {
                      List<String> entityColumns = new ArrayList<String>();
                      KuduTable table = client.openTable(tableInfo.getTableName());
                      AlterTableOptions alterTableOptions = new AlterTableOptions();
                      AtomicBoolean updated = new AtomicBoolean(false);
                      Schema schema = table.getSchema();
                      // add modify columns
                      for (ColumnInfo columnInfo : tableInfo.getColumnMetadatas())
                      {
                          entityColumns.add(columnInfo.getColumnName());
                          alterColumn(alterTableOptions, schema, columnInfo, updated);
                      }
                      // update for embeddables logic
                      for (EmbeddedColumnInfo embColumnInfo : tableInfo.getEmbeddedColumnMetadatas())
                      {
                          for (ColumnInfo columnInfo : embColumnInfo.getColumns())
                          {
                              entityColumns.add(columnInfo.getColumnName());
                              alterColumn(alterTableOptions, schema, columnInfo, updated);
                          }
                      }
  
                      // delete columns
                      for (ColumnSchema columnSchema : schema.getColumns())
                      {
                          // if not in tableInfo and not a key then delete
                          if (!entityColumns.contains(columnSchema.getName()) && !columnSchema.isKey())
                          {
                              alterTableOptions.dropColumn(columnSchema.getName());
                              updated.set(true);
                          }
                      }
  
                      if (updated.get())
                      {
                          client.alterTable(tableInfo.getTableName(), alterTableOptions);
                      }
                  }
              }
              catch (Exception e)
              {
                  logger.error("Error while updating tables, Caused by: " + e.getMessage());
                  throw new KunderaException("Error while updating tables, Caused by: " + e.getMessage());
              }
          }
      }
docs: /*
  (non-Javadoc)
  
  @see
  com.impetus.kundera.configure.schema.api.AbstractSchemaManager#update(
  java.util.List)