def METHOD_NAME(self, symbol, as_of=None, raw=False, **kwargs):
    # TODO: shall we block from_version from getting into super.read?
    """Read data for the named symbol. Returns a BitemporalItem object with
    a data and metdata element (as passed into write).
    Parameters
    ----------
    symbol : `str`
        symbol name for the item
    as_of : `datetime.datetime`
        Return the data as it was as_of the point in time.
    raw : `bool`
        If True, will return the full bitemporal dataframe (i.e. all versions of the data). This also means as_of is
        ignored.
    Returns
    -------
    BitemporalItem namedtuple which contains a .data and .metadata element
    """
    item = self._store.METHOD_NAME(symbol, **kwargs)
    last_updated = max(item.data.index.get_level_values(self.observe_column))
    if raw:
        return BitemporalItem(symbol=symbol, library=self._store._arctic_lib.get_name(), data=item.data,
                              metadata=item.metadata,
                              last_updated=last_updated)
    else:
        index_names = list(item.data.index.names)
        index_names.remove(self.observe_column)
        return BitemporalItem(symbol=symbol, library=self._store._arctic_lib.get_name(),
                              data=groupby_asof(item.data, as_of=as_of, dt_col=index_names,
                                                asof_col=self.observe_column),
                              metadata=item.metadata, last_updated=last_updated)