<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def persist_header_chain(self, headers: Iterable[BlockHeader] """ Return two iterable of headers, the first containing the new canonical headers, the second containing the old canonical headers """

        with self.db.atomic_batch() as db:
            return self._persist_header_chain(db, headers)