docs: def iterator(self, symbol, chunk_range=None):
          """
          Returns a generator that accesses each chunk in ascending order
  
          Parameters
          ----------
          symbol: str
              the symbol for the given item in the DB
          chunk_range: None, or a range object
              allows you to subset the chunks by range
  
          Returns
          -------
          generator
          """
          sym = self._get_symbol_info(symbol)
          if not sym:
              raise NoDataFoundException("Symbol does not exist.")
  
          c = CHUNKER_MAP[sym[CHUNKER]]
  
          for chunk in list(self.get_chunk_ranges(symbol, chunk_range=chunk_range)):
              yield self.read(symbol, chunk_range=c.to_range(chunk[0], chunk[1]))