I'm not a coder, so I don't know if the way I did it was the correct way, but sure....
Copy the file, /controllers/admin/AdminAddressesController.php, to /override/controllers/admin/
How edit that file, replace lines 75-98 with the following code..
```
$countries = Country::getCountries($this->context->language->id);
foreach ($countries as $country) {
$this->countriesarray[$country['idcountry']] = $country['name'];
}
$states = State::getStates($this->context->language->id);
foreach ($states as $state) {
$this->states_array[$state['id_state']] = $state['name'];
}
$this->fields_list = [
'id_address' => ['title' => $this->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs'],
'firstname' => ['title' => $this->l('First Name'), 'filter_key' => 'a!firstname'],
'lastname' => ['title' => $this->l('Last Name'), 'filter_key' => 'a!lastname'],
'address1' => ['title' => $this->l('Address')],
'city' => ['title' => $this->l('City')],
'state' => ['title' => $this->l('State'), 'filter_key' => 'st!name'],
'postcode' => ['title' => $this->l('Zip/Postal Code'), 'align' => 'right'],
'country' => ['title' => $this->l('Country'), 'type' => 'select', 'list' => $this->countries_array, 'filter_key' => 'cl!id_country'],
];
parent::__construct();
$this->_select = 'cl.`name` as country, st.`name` as state';
$this->_join = '
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON (cl.`id_country` = a.`id_country` AND cl.`id_lang` = '.(int) $this->context->language->id.')
LEFT JOIN `'._DB_PREFIX_.'state` st ON (st.`id_state` = a.`id_state`)
LEFT JOIN `'._DB_PREFIX_.'customer` c ON a.id_customer = c.id_customer
';
$this->_where = 'AND a.id_customer != 0 '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER, 'c');
$this->_use_found_rows = false;
```
Here is my override file in it's entirety...
01510089968403AdminAddressesController.php
The way it is, I could setup the state as a dropdown list like country is, but I like it better typing something in.