Also, it is arbitrary to store only 8 former names. This was probably a poor design choice, by using 8 columns in one table for the entity (as appears in the monthly dump) rather than a separate table of name changes. In my database, I keep a separate table of name changes.
There are only 3 columns: the company ID, the name, and the "until" date for that name. A company can only have 1 name at any time, and must have 1 name at any time, so I only record the "until" date for each former name. The "from date" is of course either the incorporation date, or the date of the previous name change, so you don't need to store that or return it in the API.
One theoretical exception would be if a company changes its name more than once in the same day - in which case either use a DATETIME field (so we know which came last), or just give us the name at the end of each day and skip any "quantum name" that only briefly popped in and out of existsence.