@Override
  public List<String> listTables(String database) {
    return metaStore.doAs(
        () -> {
          FileSystem fs = fs();
          Path databasePath = new Path(warehouse, database);
          FileStatus[] items;
          try {
            items = fs.listStatus(databasePath);
          } catch (FileNotFoundException e) {
            throw new NoSuchDatabaseException("Database: " + database + " is not exists", e);
          }
          if (items == null || items.length == 0) {
            return Lists.newArrayList();
          }
          List<String> hoodieTables = Lists.newArrayList();
          for (FileStatus fileStatus : items) {
            if (fileStatus.isDirectory()) {
              Path tablePath = fileStatus.getPath();
              if (isHoodieTableBase(fs, tablePath)) {
                hoodieTables.add(tablePath.getName());
              }
            }
          }
          return hoodieTables;
        });
  }
Hudi catalog implement in hadoop filesystem.
amoro-format-hudi/src/main/java/org/apache/amoro/formats/hudi/HudiHadoopCatalog.java