SQLite Internals - Records
Either the book authors describe some really ancient version of SQLite, or they make a mistake when they say &quot;[t]he header size [...] is encoded as a single byte.&quot;
Documentation that &quot;describes and defines the on-disk database file format used by all releases of SQLite since version 3.0.0 (2004-06-18)&quot; states that

The record format makes extensive use of the variable-length integer or varint representation of 64-bit signed integers[...]
A record contains a header and a body, in that order. The header begins with a single varint which determines the total number of bytes in the header. [...] Following the size varint are one or more additional varints, one per column.

while

A variable-length integer or &quot;varint&quot; is a static Huffman encoding of 64-bit twos-complement integers that uses less space for small positive values. A varint is between 1 and 9 bytes in length.

so

The serial type varints for large strings and BLOBs might extend to two or three byte varints

which certainly allows them to represent pretty long values.