def METHOD_NAME(X, handle_boolean_nullable=True, handle_integer_nullable=True):
    """Removes Pandas nullable integer and nullable boolean dtypes from data by transforming
        to other dtypes via Woodwork logical type transformations.
    Args:
        X (pd.DataFrame): Input data of shape [n_samples, n_features] whose nullable types will be changed.
        handle_boolean_nullable (bool, optional): Whether or not to downcast data with BooleanNullable logical types.
        handle_integer_nullable (bool, optional): Whether or not to downcast data with IntegerNullable or AgeNullable logical types.
    Returns:
        X with any incompatible nullable types downcasted to compatible equivalents.
    """
    if X.ww.schema is None:
        X.ww.init()
    incompatible_logical_types = _get_incompatible_nullable_types(
        handle_boolean_nullable,
        handle_integer_nullable,
    )
    data_to_downcast = X.ww.select(incompatible_logical_types)
    # If no incompatible types are present, no downcasting is needed
    if not len(data_to_downcast.columns):
        return X
    new_ltypes = {
        col: _determine_downcast_type(data_to_downcast.ww[col])
        for col in data_to_downcast.columns
    }
    X.ww.set_types(logical_types=new_ltypes)
    return X