Check "impl_name, impl_contract_name, impl_operation_name" values before entering into the table "acs_sc_impl_aliases" because the unique constraint "acs_sc_impl_alias_un" is voilated if any of the mentioned values are already present in the "acs_sc_impl_aliases" table.
This is happening because, anyone has already run this upgrade till the halfway.
The solution to this is:
1. Just get the value of impl_id before the insert command.
2. Delete the row from the table "acs_sc_impl_aliases" having the impl_id with on cascade command, as the primary key is "impl_id" is linked with the "acs_sc_impls" table.
3. Run the upgrade again (proc).
This may solve your problem.