code: public CompletableFuture<Void> deleteTable(String tableName, boolean mustBeEmpty) {
          log.debug("delete table called for table: {}", tableName);
          return expectingDataNotFound(withRetries(() -> segmentHelper.deleteTableSegment(
                  tableName, mustBeEmpty, authToken.get(), RequestTag.NON_EXISTENT_ID), 
                  () -> String.format("delete table: %s", tableName)), null)
                  .thenAcceptAsync(v -> log.debug("table {} deleted successfully", tableName), executor);
      }
docs: Method to delete a table. The callers can supply a `mustBeEmpty` flag and the table is deleted only if it is empty.
  Note: the mustBeEmpty flag is passed to segment store via segment helper and it is responsibility of segment store
  table implementation to delete a table only if it is empty.
  @param tableName tableName
  @param mustBeEmpty flag to indicate to table store to delete table only if it is empty.
  @return CompletableFuture which when completed will indicate that the table was deleted successfully.
  If mustBeEmpty is set to true and the table is non-empty then the future is failed with StoreException.DataNotEmptyException