def METHOD_NAME(self, key, newer_than_secs=None):
    """
    :param key: Key for the dataset. eg. list_libraries.
    :param newer_than_secs: None to indicate use cache if available. Used to indicate what level of staleness
    in seconds is tolerable.
    :return: None unless if there is non stale data present in the cache.
    """
    try:
        if not self._cachecol:
            # Collection not created or no permissions to read from it.
            return None
        cached_data = self._cachecol.find_one({"type": key})
        # Check that there is data in cache and it's not stale.
        if cached_data and self._is_not_expired(cached_data, newer_than_secs):
            return cached_data['data']
    except OperationFailure as op:
        # Fallback to uncached version without spamming.
        logging.debug("Could not read from cache due to: %s. Ask your admin to give read permissions on %s:%s",
                      op, CACHE_DB, CACHE_COLL)
    return None