A far better design would be to have two custom entities: one for states, one for restaurants.
The restaurants entity would have a required (mandatory) lookup field (for a N:1 relationship) to States.
Add lookups to both State and Restaurant where you would have had the picklists.
You can then use built-in feature to filter one lookup based on the value of another. No code, no stress, almost zero maintenance.
Don't forget that you need to make sure users have "append to" privileges on
You can set up records for all the states easily enough by importing, and don't let users amend these. Import restaurants including the State information. You can use security roles to determine which users are allowed to create new restaurant records in future to make this really easy to keep up to date without it being an admin job.
I know this does not answer the question you asked about filtering picklists, but I am certain it answers your implied business requirement behind that.