def METHOD_NAME(
        asset_type: AssetType,
        asset_data: list[Any],
        underlying_tokens: Optional[list[UnderlyingToken]],
) -> AssetWithNameAndType:
    """
    From a db tuple containing information about any asset deserialize to the correct Asset class
    according to type in the database. Is a wrapper around deserialize_asset_with_oracles_from_db
    And extends it by allowing the deserialization of CustomAsset objets.
    May raise:
    - DeserializationError
    - WrongAssetType
    """
    identifier = asset_data[0]
    if asset_type == AssetType.CUSTOM_ASSET:
        return CustomAsset.initialize(
            identifier=identifier,
            name=asset_data[4],
            custom_asset_type=asset_data[15],
            notes=asset_data[14],
        )
    return deserialize_asset_with_oracles_from_db(
        asset_type=asset_type,
        asset_data=asset_data,
        underlying_tokens=underlying_tokens,
    )