code: public <T extends DatabaseObject> T createSnapshot(T example, Database database) throws DatabaseException, InvalidExampleException {
          return createSnapshot(example, database, new SnapshotControl(database));
      }
docs: Creates a DatabaseSnapshot for a single DatabaseObject.
  @param example the object to snapshot
  @param database the database to work on
  @param <T> the type of the object (must extend DatabaseObject)
  @return the snapshot of the desired object
  @throws DatabaseException if a problem occurs during snapshotting
  @throws InvalidExampleException if the given catalog/schema combinations are invalid (e.g. duplicates)