code: @Override
  	public BoundingBox getBoundingBox(Projection projection, String table,
  			boolean manual) {
  
  		BoundingBox boundingBox = getContentsBoundingBox(projection, table);
  
  		BoundingBox tableBoundingBox = null;
  		String tableType = getTableType(table);
  		ContentsDataType dataType = ContentsDataType.fromName(tableType);
  		if (dataType != null) {
  			switch (dataType) {
  			case FEATURES:
  				tableBoundingBox = getFeatureBoundingBox(projection, table,
  						manual);
  				break;
  			case TILES:
  			case GRIDDED_COVERAGE:
  				try {
  					TileMatrixSet tileMatrixSet = getTileMatrixSetDao()
  							.queryForId(table);
  					tableBoundingBox = tileMatrixSet.getBoundingBox(projection);
  				} catch (SQLException e) {
  					throw new GeoPackageException(
  							"Failed to retrieve tile matrix set for table: "
  									+ table, e);
  				}
  				break;
  			default:
  
  			}
  		}
  
  		if (tableBoundingBox != null) {
  			if (boundingBox == null) {
  				boundingBox = tableBoundingBox;
  			} else {
  				boundingBox = boundingBox.union(tableBoundingBox);
  			}
  		}
  
  		return boundingBox;
  	}
docs: {@inheritDoc}