code: public BoundingBox getBoundingBox(Projection projection) {
  
  		BoundingBox boundingBox = null;
  
  		List<String> tables = null;
  		try {
  			tables = getTables();
  		} catch (SQLException e) {
  			throw new GeoPackageException(
  					"Failed to query for contents tables", e);
  		}
  
  		for (String table : tables) {
  			BoundingBox tableBoundingBox = getBoundingBox(projection, table);
  			if (tableBoundingBox != null) {
  				if (boundingBox != null) {
  					boundingBox = boundingBox.union(tableBoundingBox);
  				} else {
  					boundingBox = tableBoundingBox;
  				}
  			}
  		}
  
  		return boundingBox;
  	}
docs: Get the bounding box for all tables in the provided projection
  
  @param projection
  desired bounding box projection
  
  @return bounding box
  @since 3.1.0